package rmi;
import interfaces.InterfazRemotaAdministracion;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.List;

import administracion.Gestor_Administracion;
import administracion.Gestor_Cliente;
import administracion.Gestor_Encomienda;
import administracion.Gestor_Proveedor;
import administracion.Gestor_Vehiculo;
import dto.Administracion.DTO_Destino;
import dto.Administracion.DTO_Empleado;
import dto.Administracion.DTO_Pais;
import dto.Administracion.DTO_Provincia;
import dto.Administracion.DTO_Rol;
import dto.Administracion.DTO_Stock;
import dto.Administracion.DTO_Sucursal;
import dto.Administracion.DTO_Usuario;
import dto.Cliente.DTO_Cliente;
import dto.Cliente.DTO_CuentaCorriente;
import dto.Cliente.DTO_DireccionEntrega;
import dto.Cliente.DTO_FacturaCliente;
import dto.Cliente.DTO_ProductoCliente;
import dto.Cliente.DTO_ReciboPago;
import dto.Encomienda.DTO_ActividadEncomienda;
import dto.Encomienda.DTO_Destinatario;
import dto.Encomienda.DTO_Encomienda;
import dto.Encomienda.DTO_EncomiendaEmpresa;
import dto.Encomienda.DTO_EncomiendaParticular;
import dto.Encomienda.DTO_Envio;
import dto.Encomienda.DTO_EnvioPropio;
import dto.Encomienda.DTO_EnvioTercerizado;
import dto.Encomienda.DTO_HojaDeRuta;
import dto.Encomienda.DTO_ProductoClienteEncomienda;
import dto.Encomienda.DTO_Remito;
import dto.Encomienda.DTO_Trayecto;
import dto.Proveedor.DTO_FacturaProveedor;
import dto.Proveedor.DTO_PrecioCarrier;
import dto.Proveedor.DTO_Proveedor;
import dto.Proveedor.DTO_Seguro;
import dto.Proveedor.DTO_ServicioSeguridad;
import dto.Vehiculo.DTO_PlanMantenimiento;
import dto.Vehiculo.DTO_TareaMantenimiento;
import dto.Vehiculo.DTO_TareaMantenimientoRealizada;
import dto.Vehiculo.DTO_TareasPorKilometro;
import dto.Vehiculo.DTO_TareasPorTiempo;
import dto.Vehiculo.DTO_Vehiculo;

public class RecursosRMI  extends UnicastRemoteObject implements InterfazRemotaAdministracion {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public RecursosRMI() throws RemoteException {
		super();
	}
	
	/***********************************************************************************************/
	/**Administracion */
	/***********************************************************************************************/
	//Empleados
	public void altaEmpleado(DTO_Empleado empleado) throws RemoteException {
		Gestor_Administracion.getInstancia().altaEmpleado(empleado);
	}
	public void modificarEmpleado(DTO_Empleado empleado) throws RemoteException {
		Gestor_Administracion.getInstancia().modificarEmpleado(empleado);
	}
	public void bajaEmpleado(Integer idEmpleado) throws RemoteException {
		Gestor_Administracion.getInstancia().bajaEmpleado(idEmpleado);
	}
	public DTO_Empleado getEmpleado(Integer idEmpleado) throws RemoteException {
		return Gestor_Administracion.getInstancia().getEmpleado(idEmpleado);
	}
	
	//Sucursal
	public void altaSucursal(DTO_Sucursal sucursal) throws RemoteException {
		Gestor_Administracion.getInstancia().altaSucursal(sucursal);
	}
	public void modificarSucursal(DTO_Sucursal sucursal) throws RemoteException {
		Gestor_Administracion.getInstancia().modificarSucursal(sucursal);
	}
	public void bajaSucursal(Integer idSucursal) throws RemoteException {
		Gestor_Administracion.getInstancia().bajaSucursal(idSucursal);
	}
	public DTO_Sucursal getSucursal(Integer idSucursal) throws RemoteException {
		return Gestor_Administracion.getInstancia().getSucursal(idSucursal);
	}

	//Stock
	public void altaStock(DTO_Stock stock) throws RemoteException {
		Gestor_Administracion.getInstancia().altaStock(stock);
	}
	public void modificarStock(DTO_Stock stock) throws RemoteException {
		Gestor_Administracion.getInstancia().modificarStock(stock);
	}
	public void bajaStock(Integer idStock) throws RemoteException {
		Gestor_Administracion.getInstancia().bajaStock(idStock);
	}
	public DTO_Stock getStock(Integer idStock) throws RemoteException {
		return Gestor_Administracion.getInstancia().getStock(idStock);
	}

	//Destino
	public void altaDestino(DTO_Destino destino) throws RemoteException {
		Gestor_Administracion.getInstancia().altaDestino(destino);
	}
	public void modificarDestino(DTO_Destino destino) throws RemoteException {
		Gestor_Administracion.getInstancia().modificarDestino(destino);
	}
	public void bajaDestino(Integer idDestino) throws RemoteException {
		Gestor_Administracion.getInstancia().bajaDestino(idDestino);
	}
	public DTO_Destino getDestinoNacional(Integer idDestino) throws RemoteException {
		return Gestor_Administracion.getInstancia().getDestinoNacional(idDestino);
	}
	public DTO_Destino getDestinoInternacional(Integer idDestino) throws RemoteException {
		return Gestor_Administracion.getInstancia().getDestinoInternacional(idDestino);
	}

	//Usuario
	public void altaUsuario(DTO_Usuario usuario) throws RemoteException {
		Gestor_Administracion.getInstancia().altaUsuario(usuario);	
	}
	public void bajaUsuario(String usuario) throws RemoteException {
		Gestor_Administracion.getInstancia().bajaUsuario(usuario);	
	}
	public void ingresoUsuario(String usuario) throws RemoteException {
		Gestor_Administracion.getInstancia().ingresoUsuario(usuario);	
	}
	public void cambiarPassword(String usuario, String oldPassword,	String newPassword) throws RemoteException {
		Gestor_Administracion.getInstancia().cambiarPassword(usuario, oldPassword, newPassword);	
	}
	public DTO_Usuario validarUsuario(String usuario, String password) throws RemoteException {
		return Gestor_Administracion.getInstancia().validarUsuario(usuario, password);
	}
	//Listados
	public String[] listarPaises() throws RemoteException {
		List<DTO_Pais> lista = Gestor_Administracion.getInstancia().listarPaises();
		String listaString[] = new String[lista.size()];
   	 	int i = 0;
   	 	for(DTO_Pais p : lista){
   	 		listaString[i]= p.getPais();
   	 		i++;
   	 	}
		return listaString;
	}
	public String[] listarProvincias(String pais) throws RemoteException {
		List<DTO_Provincia> lista = Gestor_Administracion.getInstancia().listarProvincias(pais);
   	 	String listaString[] = new String[lista.size()];
   	 	int i = 0;
   	 	for(DTO_Provincia p : lista){
   	 		listaString[i]= p.getProvincia();
   	 		i++;
   	 	}
   	 	return listaString;
	}
	public List<DTO_Rol> listarRoles() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarRoles();
	}
	public List<DTO_Rol> buscarRolesUsuario(String usuario) throws RemoteException {
		return Gestor_Administracion.getInstancia().buscarRolesUsuario(usuario);
	}
	public List<DTO_Empleado> listarEmpleados() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarEmpleados();
	}
	public List<DTO_Empleado> listarEmpleados(Integer idSucursal) throws RemoteException {
		return Gestor_Administracion.getInstancia().listarEmpleados(idSucursal);
	}
	public List<DTO_Sucursal> listarSucursales() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarSucursales();
	}
	public List<DTO_Stock> listarStock() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarStock();
	}
	public List<DTO_Stock> listarStock(Integer idSucursal) throws RemoteException {
		return Gestor_Administracion.getInstancia().listarStock(idSucursal);
	}
	public List<DTO_Destino> listarDestinoNacional() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarDestinoNacional();
	}
	public List<DTO_Destino> listarDestinoNacional(Integer idSucursal) throws RemoteException {
		return Gestor_Administracion.getInstancia().listarDestinoNacional(idSucursal);
	}
	public List<DTO_Destino> listarDestinoInternacional() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarDestinoInternacional();
	}
	public List<DTO_Destino> listarDestinoInternacional(Integer idSucursal)	throws RemoteException {
		return Gestor_Administracion.getInstancia().listarDestinoInternacional(idSucursal);
	}
	public List<DTO_Usuario> listarUsuarios() throws RemoteException {
		return Gestor_Administracion.getInstancia().listarUsuarios();
	}

	/***********************************************************************************************/
	/**Clientes */
	/***********************************************************************************************/
	//Cliente
	public void altaCliente(DTO_Cliente cliente) throws RemoteException {
		Gestor_Cliente.getInstancia().altaCliente(cliente);
	}
	public void modificarCliente(DTO_Cliente cliente) throws RemoteException {
		Gestor_Cliente.getInstancia().modificarCliente(cliente);	
	}
	public void bajaCliente(Integer idCliente) throws RemoteException {
		Gestor_Cliente.getInstancia().bajaCliente(idCliente);
	}
	public DTO_Cliente getCliente(Integer idCliente) throws RemoteException {
		return Gestor_Cliente.getInstancia().getCliente(idCliente);
	}
	//Cuenta Corriente
	public void actualizarCuentaCorriente(DTO_CuentaCorriente cuentaCorriente) throws RemoteException {
		Gestor_Cliente.getInstancia().actualizarCuentaCorriente(cuentaCorriente);
	}
	//Factura
	
	/*Hay que hacer un metodo Facturar y pasarle por parametro la encomienda hacemos una facutra por encomienda*/
	
	public void altaFacturaCliente(DTO_FacturaCliente factura) throws RemoteException {
		Gestor_Cliente.getInstancia().altaFacturaCliente(factura);
	}
	public void modificarFacturaCliente(DTO_FacturaCliente factura)	throws RemoteException {
		Gestor_Cliente.getInstancia().modificarFacturaCliente(factura);
	}
	public DTO_FacturaCliente getFacturaCliente(Integer idFactura)	throws RemoteException {
		return Gestor_Cliente.getInstancia().getFacturaCliente(idFactura);
	}
	//Recibo Pago
	
	/*hay que hacer un metodo solo que le pase las facturas y el monto*/
	
	public void altaReciboPago(DTO_ReciboPago recibo) throws RemoteException {
		Gestor_Cliente.getInstancia().altaReciboPago(recibo);
	}
	public void modificarReciboPago(DTO_ReciboPago recibo) throws RemoteException {
		Gestor_Cliente.getInstancia().modificarReciboPago(recibo);
	}
	public DTO_ReciboPago getReciboPago(Integer idRecibo) throws RemoteException {
		return Gestor_Cliente.getInstancia().getReciboPago(idRecibo);
	}
	//Direccion Entrega
	public void altaDireccionEntrega(DTO_DireccionEntrega direccion) throws RemoteException {
		Gestor_Cliente.getInstancia().altaDireccionEntrega(direccion);
	}
	public void modificarDireccionEntrega(DTO_DireccionEntrega direccion) throws RemoteException {
		Gestor_Cliente.getInstancia().modificarDireccionEntrega(direccion);
	}
	public void bajaDireccionEntrega(Integer idDireccion) throws RemoteException {
		Gestor_Cliente.getInstancia().bajaDireccionEntrega(idDireccion);
	}
	public DTO_DireccionEntrega getDireccionEntrega(Integer idDireccion) throws RemoteException {
		return Gestor_Cliente.getInstancia().getDireccionEntrega(idDireccion);
	}
	//Producto Cliente
	public void altaProductoCliente(DTO_ProductoCliente producto) throws RemoteException {
		Gestor_Cliente.getInstancia().altaProductoCliente(producto);
	}
	public void modificarProductoCliente(DTO_ProductoCliente producto) throws RemoteException {
		Gestor_Cliente.getInstancia().modificarProductoCliente(producto);
	}
	public void bajaProductoCliente(Integer idProducto) throws RemoteException {
		Gestor_Cliente.getInstancia().bajaProductoCliente(idProducto);
	}

	public DTO_ProductoCliente getProductoCliente(Integer idProducto) throws RemoteException {
		return Gestor_Cliente.getInstancia().getProductoCliente(idProducto);
	}
	
	//Listados
	public List<DTO_Cliente> listarClientes() throws RemoteException {
		return Gestor_Cliente.getInstancia().listarClientes();
	}
	public List<DTO_FacturaCliente> listarFacturasClientePendientes() throws RemoteException {
		return Gestor_Cliente.getInstancia().listarFacturasClientePendientes();
	}
	public List<DTO_FacturaCliente> listarFacturasClientePendientes(Integer idCliente) throws RemoteException {
		return Gestor_Cliente.getInstancia().listarFacturasClientePendientes(idCliente);
	}
	public List<DTO_FacturaCliente> listarFacturasCliente(Integer idCliente) throws RemoteException {
		return Gestor_Cliente.getInstancia().listarFacturasCliente(idCliente);
	}
	public List<DTO_ReciboPago> listarRecibos() throws RemoteException {
		return Gestor_Cliente.getInstancia().listarRecibos();
	}
	public List<DTO_ReciboPago> listarRecibos(Integer idCliente) throws RemoteException {
		return Gestor_Cliente.getInstancia().listarRecibos(idCliente);
	}
	public List<DTO_DireccionEntrega> listarDireccionEntrega(Integer idCliente)	throws RemoteException {
		return Gestor_Cliente.getInstancia().listarDireccionEntrega(idCliente);
	}
	public List<DTO_ProductoCliente> listarProductoCliente(Integer idCliente) throws RemoteException {
		return Gestor_Cliente.getInstancia().listarProductoCliente(idCliente);
	}

	
	/***********************************************************************************************/
	/**Proveedores */
	/***********************************************************************************************/
	//Proveedor
	public void altaProveedor(DTO_Proveedor proveedor) throws RemoteException {
		Gestor_Proveedor.getInstancia().altaProveedor(proveedor);
	}
	public void modificarProveedor(DTO_Proveedor proveedor)	throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarProveedor(proveedor);
	}
	public void bajaProveedor(Integer id) throws RemoteException {
		Gestor_Proveedor.getInstancia().bajaProveedor(id);
	}
	public DTO_Proveedor buscarProveedor(String cuit) throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarProveedor(cuit);
	}
	//Factura Proveedor
	public void altaFacturaProveedor(DTO_FacturaProveedor factura) throws RemoteException {
		Gestor_Proveedor.getInstancia().altaFacturaProveedor(factura);
	}
	public void modificarFacturaProveedor(DTO_FacturaProveedor factura)	throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarFacturaProveedor(factura);
	}
	public DTO_FacturaProveedor buscarFacturaProveedor(Integer idFactura) throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarFacturaProveedor(idFactura);
	}
	//Servicio Seguridad
	public void altaServicioSeguridad(DTO_ServicioSeguridad servicioSeguridad) throws RemoteException {
		Gestor_Proveedor.getInstancia().altaServicioSeguridad(servicioSeguridad);
	}
	public void modificarServicioSeguridad(	DTO_ServicioSeguridad servicioSeguridad) throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarServicioSeguridad(servicioSeguridad);
	}
	public void bajaServicioSeguridad(Integer idServicioSeguridad) throws RemoteException {
		Gestor_Proveedor.getInstancia().bajaServicioSeguridad(idServicioSeguridad);
	}
	public DTO_ServicioSeguridad buscarServicioSeguridad(Integer idServicioSeguridad) throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarServicioSeguridad(idServicioSeguridad);
	}
	//Seguro
	public void altaSeguro(DTO_Seguro seguro) throws RemoteException {
		Gestor_Proveedor.getInstancia().altaSeguro(seguro);
	}
	public void modificarSeguro(DTO_Seguro seguro) throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarSeguro(seguro);
	}
	public void bajaSeguro(Integer idSeguro) throws RemoteException {
		Gestor_Proveedor.getInstancia().bajaSeguro(idSeguro);
	}
	public DTO_Seguro buscarSeguro(Integer idSeguro) throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarSeguro(idSeguro);
	}
	//Precio Carrier
	public void altaPrecioCarrierNacional(DTO_PrecioCarrier precioCarrier) throws RemoteException {
		Gestor_Proveedor.getInstancia().altaPrecioCarrierNacional(precioCarrier);
	}
	public void modificarPrecioCarrierNacional(DTO_PrecioCarrier precioCarrier)	throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarPrecioCarrierNacional(precioCarrier);
	}
	public void bajaPrecioCarrierNacional(Integer idPrecioCarrier) throws RemoteException {
		Gestor_Proveedor.getInstancia().bajaPrecioCarrierNacional(idPrecioCarrier);
	}
	public DTO_PrecioCarrier buscarPrecioCarrierNacional(Integer idPrecioCarrier)throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarPrecioCarrierNacional(idPrecioCarrier);
	}
	public void altaPrecioCarrierInternacional(DTO_PrecioCarrier precioCarrier)	throws RemoteException {
		Gestor_Proveedor.getInstancia().altaPrecioCarrierInternacional(precioCarrier);
	}
	public void modificarPrecioCarrierInternacional(DTO_PrecioCarrier precioCarrier) throws RemoteException {
		Gestor_Proveedor.getInstancia().modificarPrecioCarrierInternacional(precioCarrier);
	}
	public void bajaPrecioCarrierInternacional(Integer idPrecioCarrier)	throws RemoteException {
		Gestor_Proveedor.getInstancia().bajaPrecioCarrierInternacional(idPrecioCarrier);
	}
	public DTO_PrecioCarrier buscarPrecioCarrierInternacional(Integer idPrecioCarrier) throws RemoteException {
		return Gestor_Proveedor.getInstancia().buscarPrecioCarrierInternacional(idPrecioCarrier);
	}
	//Listados
	public List<DTO_Proveedor> listarProveedores() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarProveedores();
	}
	public List<DTO_Proveedor> listarTalleres() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarTalleres();
	}
	public List<DTO_Proveedor> listarAseguradoras() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarAseguradoras();
	}
	public List<DTO_Proveedor> listarEmpresasSeguridad() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarEmpresasSeguridad();
	}
	public List<DTO_Proveedor> listarCarriers() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarCarriers();
	}
	public List<DTO_FacturaProveedor> listarFacturasProveedorPendientes() throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarFacturasProveedorPendientes();
	}
	public List<DTO_FacturaProveedor> listarFacturasProveedor(Integer idProveedor) throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarFacturasProveedor(idProveedor);
	}
	public List<DTO_FacturaProveedor> listarFacturasProveedorPendientes(Integer idProveedor) throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarFacturasProveedorPendientes(idProveedor);
	}
	public List<DTO_ServicioSeguridad> listarServicioSeguridad(Integer idProveedor) throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarServicioSeguridad(idProveedor);
	}
	public List<DTO_Seguro> listarSeguros(Integer idProveedor) throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarSeguros(idProveedor);
	}
	public List<DTO_PrecioCarrier> listarPrecioCarrier(Integer idProveedor)	throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarPrecioCarrier(idProveedor);
	}
	public List<DTO_PrecioCarrier> listarPrecioCarrierDestino(Integer idDestino) throws RemoteException {
		return Gestor_Proveedor.getInstancia().listarPrecioCarrier(idDestino);
	}

	
	/***********************************************************************************************/
	/**Vehiculos */
	/***********************************************************************************************/
	//Plan Mantenimineto
	public void altaPlanMantenimiento(DTO_PlanMantenimiento planMantenimiento) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().altaPlanMantenimiento(planMantenimiento);
	}
	public void modificarPlanMantenimiento(DTO_PlanMantenimiento planMantenimiento) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().modificarPlanMantenimiento(planMantenimiento);
	}
	public void bajaPlanMantenimiento(Integer idPlanMantenimiento) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().bajaPlanMantenimiento(idPlanMantenimiento);
	}
	public DTO_PlanMantenimiento getPlanMantenimiento(Integer idPlanMantenimiento)throws RemoteException {
		return Gestor_Vehiculo.getInstancia().getPlanMantenimiento(idPlanMantenimiento);
	}
	//Tarea Mantenimiento
	public void altaTareaMantenimientoKilometro(DTO_TareasPorKilometro tarea) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().altaTareaMantenimientoKilometro(tarea);
	}
	public void modificarTareaMantenimientoKilometro(DTO_TareasPorKilometro tarea) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().modificarTareaMantenimientoKilometro(tarea);
	}
	public void bajaTareaMantenimientoKilometro(Integer idTareaMantenimientoKilometro) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().bajaTareaMantenimientoKilometro(idTareaMantenimientoKilometro);
	}
	public DTO_TareasPorKilometro getTareaMantenimientoKilometro(Integer idTareaMantenimientoKilometro) throws RemoteException {
		return  Gestor_Vehiculo.getInstancia().getTareaMantenimientoKilometro(idTareaMantenimientoKilometro);
	}
	public void altaTareaMantenimientoTiempo(DTO_TareasPorTiempo tarea)	throws RemoteException {
		 Gestor_Vehiculo.getInstancia().altaTareaMantenimientoTiempo(tarea);
	}
	public void modificarTareaMantenimientoTiempo(DTO_TareasPorTiempo tarea) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().modificarTareaMantenimientoTiempo(tarea);
	}
	public void bajaTareaMantenimientoTiempo(Integer idTareaMantenimientoTiempo) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().bajaTareaMantenimientoTiempo(idTareaMantenimientoTiempo);
	}
	public DTO_TareasPorTiempo getTareaMantenimientoTiempo(Integer idTareaMantenimientoTiempo) throws RemoteException {
		return  Gestor_Vehiculo.getInstancia().getTareaMantenimientoTiempo(idTareaMantenimientoTiempo);
	}
	//Vehiculo
	public void altaVehiculo(DTO_Vehiculo vehiculo) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().altaVehiculo(vehiculo);	
	}
	public void modificarVehiculo(DTO_Vehiculo vehiculo) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().modificarVehiculo(vehiculo);	
	}
	public void bajaVehiculo(Integer idVehiculo) throws RemoteException {
		 Gestor_Vehiculo.getInstancia().bajaVehiculo(idVehiculo);	
	}
	public DTO_Vehiculo buscarVehiculo(String patente) throws RemoteException{
		 return Gestor_Vehiculo.getInstancia().buscarVehiculo(patente);	
	}
	public void altaTareaMantenimientoRealizada(DTO_TareaMantenimientoRealizada tareaMantenimientoRealizada) throws RemoteException {
		Gestor_Vehiculo.getInstancia().altaTareaMantenimientoRealizada(tareaMantenimientoRealizada);	
	}
	public void modificarTareaMantenimientoRealizada(DTO_TareaMantenimientoRealizada tareaMantenimientoRealizada) throws RemoteException {
		Gestor_Vehiculo.getInstancia().modificarTareaMantenimientoRealizada(tareaMantenimientoRealizada);	
	}
	public DTO_TareaMantenimientoRealizada getTareaMantenimientoRealizada(Integer idTareaMantenimientoRealizada) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().getTareaMantenimientoRealizada(idTareaMantenimientoRealizada);
	}
	//Listados
	public List<DTO_PlanMantenimiento> listarPlanMantenimiento() throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarPlanMantenimiento();
	}
	public List<DTO_TareaMantenimiento> listarTareasMantenimiento(Integer idPlanMantenimiento) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarTareasMantenimiento(idPlanMantenimiento);
	}
	public List<DTO_Vehiculo> listarVehiculos() throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarVehiculos();
	}
	public List<DTO_Vehiculo> listarVehiculos(Integer idSucursal) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarVehiculos(idSucursal);
	}
	public List<DTO_Vehiculo> listarVehiculosMantenimiento() throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarVehiculosMantenimiento();
	}
	public List<DTO_Vehiculo> listarVehiculosMantenimiento(Integer idSucursal) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarVehiculosMantenimiento(idSucursal);
	}
	public List<DTO_TareaMantenimientoRealizada> listarTareaMantenimientoRealizada(Integer idVehiculo) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarTareaMantenimientoRealizada(idVehiculo);
	}
	public List<DTO_TareaMantenimientoRealizada> listarTareaMantenimientoRealizadaProveedor(Integer idProveedor) throws RemoteException {
		return Gestor_Vehiculo.getInstancia().listarTareaMantenimientoRealizadaProveedor(idProveedor);
	}
	/***********************************************************************************************/
	/**Encomienda */
	/***********************************************************************************************/
	//Actividad
	public void agregarActividad(DTO_ActividadEncomienda actividad)	throws RemoteException {
		Gestor_Encomienda.getInstancia().agregarActividad(actividad);		
	}
	public DTO_ActividadEncomienda getActividad(Integer idActividad) throws RemoteException {
		return 	Gestor_Encomienda.getInstancia().getActividad(idActividad);	
	}
	//Destinatario
	public void altaDestinatario(DTO_Destinatario destinatario)	throws RemoteException {
		Gestor_Encomienda.getInstancia().altaDestinatario(destinatario);	
	}
	public void modificarDestinatario(DTO_Destinatario destinatario)throws RemoteException {
		Gestor_Encomienda.getInstancia().modificarDestinatario(destinatario);	
	}
	public void bajaDestinatario(Integer idDestinatario) throws RemoteException {
		Gestor_Encomienda.getInstancia().bajaDestinatario(idDestinatario);	
	}
	public DTO_Destinatario getDestinatario(Integer idDestinatario)	throws RemoteException {
		return Gestor_Encomienda.getInstancia().getDestinatario(idDestinatario);
	}
	//Encomienda Empresa
	public void altaEncomiendaEmpresa(DTO_EncomiendaEmpresa encomienda)	throws RemoteException {
		Gestor_Encomienda.getInstancia().altaEncomiendaEmpresa(encomienda);	
	}
	public void modificarEncomiendaEmpresa(DTO_EncomiendaEmpresa encomienda) throws RemoteException {
		Gestor_Encomienda.getInstancia().modificarEncomiendaEmpresa(encomienda);	
	}
	public DTO_EncomiendaEmpresa getEncomiendaEmpresa(Integer idEncomienda) throws RemoteException {
		return Gestor_Encomienda.getInstancia().getEncomiendaEmpresa(idEncomienda);
	}
	public void altaEncomiendaParticular(DTO_EncomiendaParticular encomienda) throws RemoteException {
		Gestor_Encomienda.getInstancia().altaEncomiendaParticular(encomienda);
	}
	public void modificarEncomiendaParticular(DTO_EncomiendaParticular encomienda) throws RemoteException {
		Gestor_Encomienda.getInstancia().modificarEncomiendaParticular(encomienda);
	}
	public DTO_EncomiendaParticular getEncomiendaParticular(Integer idEncomienda)	throws RemoteException {
		return Gestor_Encomienda.getInstancia().getEncomiendaParticular(idEncomienda);
	}
	//Stock
	public void ingresoStock(Integer idStock, Integer idEncomienda)	throws RemoteException {
		Gestor_Encomienda.getInstancia().ingresoStock(idStock, idEncomienda);
	}
	public void movimientoInterno(Integer idStock, Integer idEncomienda) throws RemoteException {
		Gestor_Encomienda.getInstancia().ingresoStock(idStock, idEncomienda);
	}
	public void egresoStock(Integer idStock, Integer idEncomienda) throws RemoteException {
		Gestor_Encomienda.getInstancia().egresoStock(idStock, idEncomienda);
	}
	//Envio
	public void altaEnvio(DTO_Envio envio) throws RemoteException {
		Gestor_Encomienda.getInstancia().altaEnvio((DTO_EnvioPropio) envio);
	}
	public void modificarEnvio(DTO_Envio envio) throws RemoteException {
		Gestor_Encomienda.getInstancia().modificarEnvio((DTO_EnvioPropio) envio);
	}
	public void altaEnvioTercerizado(DTO_Envio envio) throws RemoteException {
		Gestor_Encomienda.getInstancia().altaEnvioTercerizado((DTO_EnvioTercerizado) envio);
	}
	public void modificarEnvioTercerizado(DTO_Envio envio) throws RemoteException {
		Gestor_Encomienda.getInstancia().modificarEnvioTercerizado((DTO_EnvioTercerizado) envio);
	}
	public DTO_Envio getEnvio(Integer idEnvio) throws RemoteException {
		return Gestor_Encomienda.getInstancia().getEnvio(idEnvio);
	}

	//HojaRuta
	public void altaHojaRuta(DTO_HojaDeRuta hojaRuta) throws RemoteException {
		 Gestor_Encomienda.getInstancia().altaHojaRuta(hojaRuta);
	}
	public void modificarHojaRuta(DTO_HojaDeRuta hojaRuta) throws RemoteException {
		 Gestor_Encomienda.getInstancia().modificarHojaRuta(hojaRuta);
	}
	public DTO_HojaDeRuta getHojaRuta(Integer idHojaRuta) throws RemoteException {
		return  Gestor_Encomienda.getInstancia().getHojaRuta(idHojaRuta);
	}

	//Remito
	public void altaRemito(DTO_Remito remito) throws RemoteException {
		 Gestor_Encomienda.getInstancia().altaRemito(remito);
	}
	public void conformarRemito(Integer idRemito, String recibidoPor) throws RemoteException {
		Gestor_Encomienda.getInstancia().conformarRemito(idRemito,recibidoPor);
	}

	//Listados
	public List<DTO_ActividadEncomienda> listarActividades(Integer idEncomienda) throws RemoteException {
		return listarActividades(idEncomienda) ;
	}
	public List<DTO_Destinatario> listarDestinatarios(Integer idEncomienda)	throws RemoteException {
		return listarDestinatarios(idEncomienda) ;
	}
	public List<DTO_Encomienda> listarEncomiendas() throws RemoteException {
		return listarEncomiendas() ;
	}
	public List<DTO_EncomiendaEmpresa> listarEncomiendasEmpresa() throws RemoteException {
		return listarEncomiendasEmpresa();
	}
	public List<DTO_EncomiendaParticular> listarEncomiendasParticulares() throws RemoteException {
		return listarEncomiendasParticulares();
	}
	public List<DTO_Encomienda> listarEncomiendas(Integer idSucursal) throws RemoteException {
		return listarEncomiendas(idSucursal);
	}
	public List<DTO_EncomiendaEmpresa> listarEncomiendasEmpresa(Integer idSucursal) throws RemoteException {
		return listarEncomiendasEmpresa(idSucursal);
	}
	public List<DTO_EncomiendaParticular> listarEncomiendasParticulares(Integer idSucursal) throws RemoteException {
		return listarEncomiendasParticulares(idSucursal);
	}
	public List<DTO_EnvioPropio> listarEnviosPropios() throws RemoteException {
		return listarEnviosPropios();
	}
	public List<DTO_EnvioTercerizado> listarEnviosTercerizados() throws RemoteException {
		return  listarEnviosTercerizados();
	}
	public List<DTO_ProductoClienteEncomienda> listarProductosEncomienda(Integer idEncomienda) throws RemoteException {
		return listarProductosEncomienda(idEncomienda);
	}
	public List<DTO_Remito> listarRemitos(Integer idEncomienda)	throws RemoteException {
		return listarRemitos(idEncomienda);
	}
	public List<DTO_Trayecto> listarTrayectos(Integer idHojaRuta) throws RemoteException {
		return listarTrayectos(idHojaRuta);
	}
}
